package br.com.rotary.manager;

import br.com.rotary.manager.generico.ManagerPesquisarGenerico;
import br.com.rotary.modelo.Estado;
import br.com.rotary.servico.EstadoServico;
import br.com.rotary.utilitario.Msg;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author laverson
 */
@ViewScoped
@ManagedBean
public class ManagerEstado extends ManagerPesquisarGenerico<Estado> {

    @EJB
    EstadoServico estadoServico;
    private Estado estado;
    private Estado estadoExcluir;
    private String estadoId;

    @Override
    public void init() {
        setServico(estadoServico);

        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.estadoId = params.get("estado");

        if (this.estadoId != null && !this.estadoId.isEmpty()) {
            this.estado = estadoServico.pesquisar(Long.parseLong(this.estadoId));
        } else {
            this.estado = new Estado();
        }
    }

    public void salvar() {
        try {
            System.err.println("estado = " + this.estado.getId());

            if (this.estado.getId() == null) {
                estadoServico.salvar(this.estado);
                Msg.messagemInfo(Msg.SuccessFull);
                init();
            } else {
                estadoServico.atualizar(this.estado);
                Msg.messagemInfo(Msg.SuccessFull);
            }
        } catch (Exception e) {
            System.err.println(e);
            Msg.messagemError(Msg.Failure);
        }
    }

    @Override
    public void pesquisar() {
        entidadePesquisar = this.estado;

        getSearchResults().setFirst(0);
        onLoadModel();
    }

    @Override
    public void limpar() {
        this.estado = new Estado();
    }

    @Override
    public void remover() {
        try {
            this.estadoExcluir.setAtivo(false);
            estadoServico.atualizar(this.estadoExcluir);
        } catch (Exception e) {
            System.err.println(e);
        }
    }

    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }

    public Estado getEstadoExcluir() {
        return estadoExcluir;
    }

    public void setEstadoExcluir(Estado estadoExcluir) {
        this.estadoExcluir = estadoExcluir;
    }
}
